﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QuanLyHocPhi.Model;

namespace QuanLyHocPhi.BLL
{
    partial class BizCauHinh
    {

        /// <summary>
        /// 
        /// </summary>
        /// <param name="LaHocPhi">True: Học phí, False: Lệ phí</param>
        /// <returns></returns>
        internal static List<int> GetCauHinh(bool LaHocPhi = true)
        {
            List<int> rs = new List<int>();
            if (LaHocPhi)
            {
                var quyenSo = Registry.GetValue(Registry.Key_HocPhi_QuyenSo);
                if (quyenSo == null)
                {
                    Registry.SetValue(Registry.Key_HocPhi_QuyenSo, 1);
                    quyenSo = 1;
                }
                rs.Add(int.Parse(quyenSo.ToString()));

                var soPhieu = Registry.GetValue(Registry.Key_HocPhi_SoPhieu);
                if (soPhieu == null)
                {
                    Registry.SetValue(Registry.Key_HocPhi_SoPhieu, 1);
                    soPhieu = 1;
                }
                rs.Add(int.Parse(soPhieu.ToString()));
            }
            else
            {
                var quyenSo = Registry.GetValue(Registry.Key_LePhi_QuyenSo);
                if (quyenSo == null)
                {
                    Registry.SetValue(Registry.Key_LePhi_QuyenSo, 1);
                    quyenSo = 1;
                }
                rs.Add(int.Parse(quyenSo.ToString()));

                var soPhieu = Registry.GetValue(Registry.Key_LePhi_SoPhieu);
                if (soPhieu == null)
                {
                    Registry.SetValue(Registry.Key_LePhi_SoPhieu, 1);
                    soPhieu = 1;
                }
                rs.Add(int.Parse(soPhieu.ToString()));
            }
            return rs;
        }

        internal static void UpdateCauHinh(string quyenSo, string soPhieu, bool LaHocPhi = true)
        {
            if (LaHocPhi)
            {
                Registry.SetValue(Registry.Key_HocPhi_QuyenSo, quyenSo);
                Registry.SetValue(Registry.Key_HocPhi_SoPhieu, soPhieu);
            }
            else
            {
                Registry.SetValue(Registry.Key_LePhi_QuyenSo, quyenSo);
                Registry.SetValue(Registry.Key_LePhi_SoPhieu, soPhieu);
            }
        }

        internal static void IncrementCauHinh(ref int soQuyen, ref int soPhieu)
        {
            if (soPhieu % 50 == 0)
            {
                soQuyen++;
            }
            soPhieu++;
        }
    }
}
